//
//  UIColor+GM.m
//  News
//
//  Created by 雷国敏 on 16/9/8.
//  Copyright © 2016年 lieop. All rights reserved.
//

#import "UIColor+GM.h"

@implementation UIColor (GM)
+(UIColor*) colorWithHex:(NSInteger)hexValue alpha:(CGFloat)alphaValue
{
	return [UIColor colorWithRed:((float)((hexValue & 0xFF0000) >> 16))/255.0
						   green:((float)((hexValue & 0xFF00) >> 8))/255.0
							blue:((float)(hexValue & 0xFF))/255.0 alpha:alphaValue];
}


+ (UIColor*) colorWithHex:(NSInteger)hexValue
{
	return [UIColor colorWithHex:hexValue alpha:1.0];
}


+ (NSString *) hexFromUIColor: (UIColor*) color {
	if (CGColorGetNumberOfComponents(color.CGColor) < 4) {
		const CGFloat *components = CGColorGetComponents(color.CGColor);
		color = [UIColor colorWithRed:components[0]
								green:components[0]
								 blue:components[0]
								alpha:components[1]];
	}
	
	if (CGColorSpaceGetModel(CGColorGetColorSpace(color.CGColor)) != kCGColorSpaceModelRGB) {
		return [NSString stringWithFormat:@"#FFFFFF"];
	}
	
	return [NSString stringWithFormat:@"#%x%x%x", (int)((CGColorGetComponents(color.CGColor))[0]*255.0),
			(int)((CGColorGetComponents(color.CGColor))[1]*255.0),
			(int)((CGColorGetComponents(color.CGColor))[2]*255.0)];
}


+ (UIColor *) colorWithHexString: (NSString *)color
{
	return  [UIColor colorWithHexString:color alpha:1.0f];
}



+ (UIColor *) colorWithHexString: (NSString *)color alpha:(CGFloat)alphaValue
{
	NSString *cString = [[color stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] uppercaseString];
	
	// String should be 6 or 8 characters
	if ([cString length] < 6) {
		return [UIColor clearColor];
	}
	
	// strip 0X if it appears
	if ([cString hasPrefix:@"0X"])
		cString = [cString substringFromIndex:2];
	if ([cString hasPrefix:@"#"])
		cString = [cString substringFromIndex:1];
	if ([cString length] != 6)
		return [UIColor clearColor];
	
	// Separate into r, g, b substrings
	NSRange range;
	range.location = 0;
	range.length = 2;
	
	//r
	NSString *rString = [cString substringWithRange:range];
	
	//g
	range.location = 2;
	NSString *gString = [cString substringWithRange:range];
	
	//b
	range.location = 4;
	NSString *bString = [cString substringWithRange:range];
	
	// Scan values
	unsigned int r, g, b;
	[[NSScanner scannerWithString:rString] scanHexInt:&r];
	[[NSScanner scannerWithString:gString] scanHexInt:&g];
	[[NSScanner scannerWithString:bString] scanHexInt:&b];
	
	return [UIColor colorWithRed:((float) r / 255.0f) green:((float) g / 255.0f) blue:((float) b / 255.0f) alpha:alphaValue];
}



@end
